package org.example.pack1023.reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class DemoE {
    public static void main(String[] args) throws Exception {
        //获取类
        Class c = Class.forName("org.example.pack1023.reflect.Person");
        //获取这个类的所有属性
        Field[] fields = c.getDeclaredFields();
        //new一个这个类的对象
        Object obj = c.newInstance();
        //循环遍历这个类的属性
        for (Field field:fields){
            //得到这个类的属性的名字
            String fieldName = field.getName();
            //拼接一个set的方法名
            String methodName = "set"+fieldName.substring(0,1).toUpperCase()
                    +fieldName.substring(1);
            //通过这个名字获取这个属性的set方法
            Method method= c.getDeclaredMethod(methodName,String.class);
            //对象点方法--同过这个set方法给对象的这个属性赋值
            method.invoke(obj,"ss");
        }
        //输出这个对象
        System.out.println(obj);
    }
}
